#!/bin/bash
clear
fun_bar () {
comando[0]="$1"
comando[1]="$2"
 (
[[ -e $HOME/fim ]] && rm $HOME/fim
${comando[0]} -y > /dev/null 2>&1
${comando[1]} -y > /dev/null 2>&1
touch $HOME/fim
 ) > /dev/null 2>&1 &
 tput civis
echo -ne "  \033[1;33mAGUARDE \033[1;37m- \033[1;33m["
while true; do
   for((i=0; i<18; i++)); do
   echo -ne "\033[1;31m#"
   sleep 0.1s
   done
   [[ -e $HOME/fim ]] && rm $HOME/fim && break
   echo -e "\033[1;33m]"
   sleep 1s
   tput cuu1
   tput dl1
   echo -ne "  \033[1;33mAGUARDE \033[1;37m- \033[1;33m["
done
echo -e "\033[1;33m]\033[1;37m -\033[1;32m OK !\033[1;37m"
tput cnorm
}
echo -e "\033[1;31m════════════════════════════════════════════════════\033[0m"
tput setaf 7 ; tput setab 4 ; tput bold ; printf '%40s%s%-12s\n' "INSTALANDO SLOWDNS SOCKS" ; tput sgr0
echo -e "\033[1;31m════════════════════════════════════════════════════\033[0m"
echo -e ""
echo -e "      Esse script irá fazer a instalação do"
echo -e " slowdns para tunelamento de DNS com Proxy Socks."
echo -e ""
echo -e "         \033[1;33mInstalador feito por edição️ \033[1;37m"
echo -e ""
echo -e "\033[1;31m════════════════════════════════════════════════════\033[0m"
echo ""
echo -e "ATUALIZANDO LISTA DE PACOTES..."
fun_att () {
apt update && apt upgrade -y
}
fun_bar 'fun_att'
echo -e "INSTALANDO E ATUALIZANDO PACOTES NECESSARIOS..."
install_pkgs () {
apt install screen -y
apt install cron -y
apt install iptables -y
service cron reload
service cron restart
service iptables reload
service iptables restart
}
fun_bar 'install_pkgs'
echo -e "CONFIGURANDO IPTABLES..."
ipt_set () {
cd /etc
mv rc.local rc.local.bkp
wget https://github.com/leitura/slowdns/raw/main/rc.local
chmod +x /etc/rc.local
systemctl enable rc-local
systemctl start rc-local
}
fun_bar 'ipt_set'
clear
echo ""
echo -e "\033[1;31m ATENÇÃO NESSA ETAPA! \033[1;33m"
echo ""
echo -ne "\033[1;32m INFORME SEU NS (NAMESERVER)\033[1;37m: "; read nameserver
cd /etc/slowdns
touch infons
echo $nameserver > infons
set_ns () {
sleep 1
wget https://raw.githubusercontent.com/leitura/slowdns/main/socks/startdns 
wget https://raw.githubusercontent.com/leitura/slowdns/main/socks/restartdns
chmod +x startdns
chmod +x restartdns
sed -i "s;1234;$nameserver;g" /etc/slowdns/startdns > /dev/null 2>&1
sed -i "s;1234;$nameserver;g" /etc/slowdns/restartdns > /dev/null 2>&1
cp startdns /bin/
cp restartdns /bin/
}
fun_bar 'set_ns'
echo ""
echo "Verificando existência de key"
sleep 2
echo ""
echo "      Por favor aguarde...   "
sleep 2
cd
key1="/root/server.key"
key2="/root/server.pub"
if [ -f $key1 ] && [ -f $key2 ]
then
echo -e "Arquivo de key encontrado!"
sleep 1
echo ""
key () {
echo "Como deseja obter sua key?"
echo ""
echo "[ 1 ] | Usar key existente no arquivo"
echo "[ 2 ] | Deletar arquivo e gerar nova key"
echo "[ 3 ] | Deletar arquivo e usar key padrão"
echo "[ x ] | Abortar instalação"
echo ""
echo -ne "Digite uma opção: " && read opcao
case $opcao in
1) Opcao1 ;;
2) Opcao2 ;;
3) Opcao3 ;;
x) OpcaoX ;;
*) "Calma Barboleta" ; echo ; key;;
esac
}
Opcao1 () {
echo -ne "Restaurando key existente..." && sleep 2 && echo "OK!"
echo ""
echo -e "FINALIZANDO..."
finish_ist () {
cd /etc/slowdns
iptables -I INPUT -p udp --dport 5300 -j ACCEPT
iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
./startdns
}
fun_bar 'finish_ist'
clear
echo -e "\033[1;31m INSTALAÇÃO CONCLUÍDA!\033[0m"
echo ""
echo -ne "\033[1;33mSEU NS:\033[0m " && cat /etc/slowdns/infons
echo ""
echo -ne "\033[1;33mSUA KEY:\033[0m " && cat /root/server.pub
echo ""
echo -ne "\033[1;33mCOMANDO TERMUX:\033[0m curl -sO https://sshplus.net/scripts/slowdns && chmod +x slowdns && ./slowdns " && cat /etc/slowdns/infons /root/server.pub
echo ""
echo -e "\033[1;33m SUA KEY está salva no arquivo /root/server.pub\033[0m"
echo -e "\033[1;33mGuarde-a em um local seguro, pode precisar no futuro!\033[0m"
echo ""
read -p "Pressione [Enter] para voltar ao menu ou CTRL+C para sair"
slowdns
}
Opcao2 () {
cd
rm server.key server.pub
echo "Gerando nova key"
cd /etc/slowdns/
./dns-server -gen-key -privkey-file /root/server.key -pubkey-file /root/server.pub
echo -e "FINALIZANDO..."
finish_ist () {
iptables -I INPUT -p udp --dport 5300 -j ACCEPT
iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
./startdns
cd
}
fun_bar 'finish_ist'
clear
echo -e "\033[1;31m INSTALAÇÃO CONCLUÍDA!\033[0m"
echo ""
echo -ne "\033[1;33mSEU NS:\033[0m " && cat /etc/slowdns/infons
echo ""
echo -ne "\033[1;33mSUA KEY:\033[0m " && cat /root/server.pub
echo ""
echo -ne "\033[1;33mCOMANDO TERMUX:\033[0m curl -sO https://sshplus.net/scripts/slowdns && chmod +x slowdns && ./slowdns " && cat /etc/slowdns/infons /root/server.pub
echo ""
echo -e "\033[1;33m SUA KEY está salva no arquivo /root/server.pub\033[0m"
echo -e "\033[1;33mGuarde-a em um local seguro, pode precisar no futuro!\033[0m"
echo ""
read -p "Pressione [Enter] para voltar ao menu ou CTRL+C para sair"
slowdns
}
Opcao3 () {
echo -e "Baixando par de chaves padrão..."
cd
rm server.key server.pub
wget https://raw.githubusercontent.com/leitura/slowdns/main/server.key
wget https://raw.githubusercontent.com/leitura/slowdns/main/server.pub
sleep 1
echo -e "Download Concluído"
sleep 1
cd /etc/slowdns/
echo -e "FINALIZANDO..."
finish_ist () {
iptables -I INPUT -p udp --dport 5300 -j ACCEPT
iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
./startdns
cd
}
fun_bar 'finish_ist'
clear
echo -e "\033[1;31m INSTALAÇÃO CONCLUÍDA!\033[0m"
echo ""
echo -ne "\033[1;33mSEU NS:\033[0m " && cat /etc/slowdns/infons
echo ""
echo -ne "\033[1;33mSUA KEY:\033[0m " && cat /root/server.pub
echo ""
echo -ne "\033[1;33mCOMANDO TERMUX:\033[0m curl -sO https://sshplus.net/scripts/slowdns && chmod +x slowdns && ./slowdns " && cat /etc/slowdns/infons /root/server.pub
echo ""
echo -e "\033[1;33m SUA KEY está salva no arquivo /root/server.pub\033[0m"
echo -e "\033[1;33mGuarde-a em um local seguro, pode precisar no futuro!\033[0m"
echo ""
read -p "Pressione [Enter] para voltar ao menu ou CTRL+C para sair"
slowdns
}
OpcaoX () {
exit
}
key
else
echo -e "Não existe uma key nos registros"
echo ""
key_gen () {
echo "Como deseja obter sua key?"
echo ""
echo "[ 1 ] | Gerar na instalação"
echo "[ 2 ] | Usar a key padrão"
echo "[ x ] | Abortar instalação"
echo ""
echo -ne "Digite uma opção: " && read opc_key
case $opc_key in
1) opc_key1 ;;
2) opc_key2 ;;
x) opc_keyx ;;
*) "Comando desconhecido" ; echo ; key_gen;;
esac
}
opc_key1 () {
echo "Gerando sua key..."
cd /etc/slowdns/
./dns-server -gen-key -privkey-file /root/server.key -pubkey-file /root/server.pub
echo -e "FINALIZANDO..."
finish_ist () {
iptables -I INPUT -p udp --dport 5300 -j ACCEPT
iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
./startdns
cd
}
fun_bar 'finish_ist'
clear
echo -e "\033[1;31m INSTALAÇÃO CONCLUÍDA!\033[0m"
echo ""
echo -ne "\033[1;33mSEU NS:\033[0m " && cat /etc/slowdns/infons
echo ""
echo -ne "\033[1;33mSUA KEY:\033[0m " && cat /root/server.pub
echo ""
echo -ne "\033[1;33mCOMANDO TERMUX:\033[0m curl -sO https://sshplus.net/scripts/slowdns && chmod +x slowdns && ./slowdns " && cat /etc/slowdns/infons /root/server.pub
echo ""
echo -e "\033[1;33m SUA KEY está salva no arquivo /root/server.pub\033[0m"
echo -e "\033[1;33mGuarde-a em um local seguro, pode precisar no futuro!\033[0m"
echo ""
read -p "Pressione [Enter] para voltar ao menu ou CTRL+C para sair"
slowdns
}
opc_key2 () {
echo -e "Baixando par de chaves padrão..."
cd
wget https://raw.githubusercontent.com/leitura/slowdns/main/server.key
wget https://raw.githubusercontent.com/leitura/slowdns/main/server.pub
sleep 1
echo -e "Download Concluído"
sleep 1
cd /etc/slowdns/
echo -e "FINALIZANDO..."
finish_ist () {
iptables -I INPUT -p udp --dport 5300 -j ACCEPT
iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
./startdns
cd
}
fun_bar 'finish_ist'
clear
echo -e "\033[1;31m INSTALAÇÃO CONCLUÍDA!\033[0m"
echo ""
echo -ne "\033[1;33mSEU NS:\033[0m " && cat /etc/slowdns/infons
echo ""
echo -ne "\033[1;33mSUA KEY:\033[0m " && cat /root/server.pub
echo ""
echo -ne "\033[1;33mCOMANDO TERMUX:\033[0m curl -sO https://sshplus.net/scripts/slowdns && chmod +x slowdns && ./slowdns " && cat /etc/slowdns/infons /root/server.pub
echo ""
echo -e "\033[1;33m SUA KEY está salva no arquivo /root/server.pub\033[0m"
echo -e "\033[1;33mGuarde-a em um local seguro, pode precisar no futuro!\033[0m"
echo ""
read -p "Pressione [Enter] para voltar ao menu ou CTRL+C para sair"
slowdns
}
opc_keyx () {
echo "Abortando instalação"
sleep 2
slowdns
}
key_gen
fi